home *** CD-ROM | disk | FTP | other *** search
/ Chip: Special XP & Vista / Chip Spesial XP & Vista.iso / 1_Audio_Video / MediaCell_Mobile_Video_Converter / MediaCellMobileVideoConverterSetupFull.exe / vm.htj < prev   
Text File  |  2006-09-21  |  20KB  |  702 lines

  1. /*
  2. ** SimuSelect Code
  3. */
  4.  
  5. var lastOpenSS = '';
  6. var ssIsIE = (navigator.appName=="Microsoft Internet Explorer");
  7.  
  8. function SimuSelect(selectObject, isCombo)
  9. {
  10.     var oVal, oLabel, htmlCode='', selectName, i, simuSelObject;
  11.  
  12.     // If we are passed an actual object, let's get it's HTML directly
  13.     if (selectObject && selectObject.type && selectObject.type.search(/select/i)==0)
  14.         htmlCode = selectObject.innerHTML;
  15.     else
  16.     {
  17.         alert("SimuSelect() : Not a valid SELECT object.");
  18.         return;
  19.     }
  20.  
  21.     // Parse the <SELECT> block.
  22.     if (htmlCode.search(/<select/i) >= 0)
  23.     {
  24.         alert("SimuSelect() : Nested <select> blocks not supported.");
  25.         return;
  26.     }
  27.  
  28.     selectObject.origVisibility = (selectObject.style.visibility) ? selectObject.style.visibility : "visible";
  29.     selectObject.style.visibility = "hidden";
  30.  
  31.     // Rename the Select Object so we can use this name in our new object
  32.     selectName = "ss_"+ selectObject.name;
  33.     
  34.     // Special box for Drop Down
  35.     if (ssIsIE)
  36.         boxClass = "boxClass";
  37.     else
  38.         boxClass = "boxClassGecko";
  39.  
  40.     var simuContainer = document.createElement("span");
  41.     simuContainer.id = "__"+ selectName;
  42.     simuContainer.className = "simuSelect";
  43.  
  44.     // Generate a Combo Select / Input box
  45.     simuContainer.innerHTML =
  46.          '<input name="_'+ selectName +'" id="_'+ selectName +'" class="simuSelectInput" ondblclick="if (window.lastOpenSS) closeSS()"'
  47.         + ((isCombo) ? '' :     ' onmousedown="openSS(\''+ selectName +'\')" style="cursor:default"')
  48.                     +' onmouseover="document.getElementById(\'drop\'+ this.id).className=\'dropSquare-hi\'"'
  49.           +' onmouseout="document.getElementById(\'drop\'+ this.id).className=\'dropSquare\'"'
  50.         +' type="text" value="'+ ((selectObject.selectedIndex > -1) ? selectObject.options[selectObject.selectedIndex].text : '') +'">'
  51.         +'<input class="'+ boxClass +'" UNSELECTABLE="on" tabindex="-1" onfocus="blur()" readonly>'
  52.         +'<span id="drop_'+ selectName +'" class="dropSquare" UNSELECTABLE="on" ondblclick="openSS(\''+ selectName +'\')"'
  53.         +' onmouseover="this.className=\'dropSquare-hi\'" onmouseout="this.className=\'dropSquare\'"'
  54.         +' onmousedown="this.className=\'dropSquare-on\';openSS(\''+ selectName +'\');return false"'
  55.         +' onmouseup="this.className=\'dropSquare\';return false">▼</span>';
  56.  
  57.     selectObject.parentNode.appendChild(simuContainer);
  58.  
  59.     // Generate the Options drop down box
  60.     document.writeln('<DIV id="'+ selectName +'" style="OVERFLOW: auto; WIDTH: 166px; HEIGHT: 100px" class="simuSelDrop" onblur="closeSS(\''+ selectName +'\')">'
  61.         +'<TABLE cellSpacing=1 cellPadding=0 border=0 bgcolor="black"><TBODY><TR><TD>'
  62.             +'<TABLE id="opt_'+ selectName +'" cellSpacing=0 cellPadding=2 width="100%" border=0><TBODY>');
  63.  
  64.     window.origDocOnFocus = document.onfocus;
  65.     document.onfocus = new Function("if (window.lastOpenSS) closeSS();if (window.origDocOnFocus) eval(window.origDocOnFocus);return true;");
  66.  
  67.     simuSelObject = document.getElementById('_'+ selectName);
  68.     var oSelStyle = (window.getComputedStyle) ? getComputedStyle(selectObject, null) : selectObject.currentStyle;
  69.     simuSelObject.style.color = oSelStyle.color;
  70.  
  71.     simuSelObject.onkeydown = ssCheckKB;
  72.     document.getElementById(selectName).onkeydown = ssCheckKB;
  73.  
  74.     simuSelObject.isCombo = isCombo;
  75.     simuSelObject.origSelect = selectObject;
  76.     simuSelObject.options = new Array();
  77.     oIndex = 0;
  78.  
  79.     if (isCombo)
  80.     {
  81.         if (selectObject.onchange)
  82.             simuSelObject.onchange = new Function("execChangeEvt(document.getElementById('_"+ selectName +"').origSelect);");
  83.     }
  84.     else
  85.         simuSelObject.readOnly = true;
  86.  
  87.     document.writeln('</TBODY></TABLE></TD></TR></TBODY></TABLE></DIV>\n');
  88.  
  89.     // If the <SELECT> has no options, make it invisible
  90.     if (selectObject.options.length < 1)
  91.         simuContainer.style.visibility = "hidden";
  92.  
  93.     // Create a positional element to get the position of the original Select
  94.     posEl=document.createElement("SPAN");
  95.     posEl.id = "pos_"+ selectName;
  96.     posEl.style.position ="relative";
  97.     posEl.innerHTML = " ";
  98.  
  99.     selectObject.parentNode.insertBefore(posEl,selectObject);
  100.     simuContainer.style.visibility = selectObject.origVisibility;
  101.     
  102.     simuSelObject.onkeydown=null;
  103.     simuSelObject=null;
  104.     simuContainer=null;
  105.     posEl=null;
  106.     
  107.     ssSyncOptions(selectObject);
  108.     setTimeout("ssResize('"+ selectName +"')", 20);
  109. }
  110.  
  111. // Resizes the SimuSelect control per the attributes of the original select
  112. function ssResize(selectName, isUpdate)
  113. {
  114.     var simuSelObject = document.getElementById('_'+ selectName);
  115.     var simuContainer = document.getElementById('__'+ selectName);
  116.     var posElement = document.getElementById('pos_'+ selectName);
  117.     var tableNode = document.getElementById('opt_'+ selectName);
  118.  
  119.     simuSelObject.style.width = Math.abs(parseInt(tableNode.offsetWidth) - document.getElementById('drop_'+ selectName).offsetWidth + 2);
  120.     simuContainer.style.left = 1 * ((posElement.clientLeft) ? posElement.clientLeft : 0) + posElement.offsetLeft;
  121.     simuContainer.style.top = -4 + ((posElement.clientTop) ? posElement.clientTop : 0) + posElement.offsetTop;
  122.     simuContainer.style.textAlign="left";
  123.  
  124.     // Sync the style of the options based on the run-time style of the original select options
  125.     var oOptStyle = (window.getComputedStyle) ? getComputedStyle(simuSelObject.origSelect, null) : simuSelObject.origSelect.currentStyle;
  126.     var rules;
  127.     for(var si=0; si < document.styleSheets.length; si++)
  128.     {
  129.         rules = (document.styleSheets[si].cssRules) ? document.styleSheets[si].cssRules : document.styleSheets[si].rules;
  130.         if (rules && rules.length)
  131.             for(var ri=0; ri < rules.length; ri++)
  132.                 if (rules[ri] && rules[ri].selectorText.search(/^\.simuSelNormal$/i)==0)
  133.                 {
  134.                     if (oOptStyle.color)
  135.                         rules[ri].style.color = oOptStyle.color;
  136.                 }
  137.     }
  138. }
  139.  
  140. // Called to hide the SimuSelect object
  141. function ssHide(selectObject)
  142. {
  143.     if (!selectObject || typeof(selectObject) != "object")
  144.     {
  145.         alert("ssSyncOptions() : Not a valid SELECT object.");
  146.         return;
  147.     }
  148.     document.getElementById('__ss_'+ selectObject.name).style.visibility = "hidden";
  149. }
  150.  
  151. // This function needs to get called to synchronize any dynamically updated <SELECT> controls
  152. // with the SimuSelect control (when dynamically adding/removing options).
  153. function ssSyncOptions(selectObject)
  154. {
  155.     var tableNode, selectName, i, simuSelObject;
  156.     if (!selectObject || typeof(selectObject) != "object")
  157.     {
  158.         alert("ssSyncOptions() : Not a valid SELECT object.");
  159.         return;
  160.     }
  161.  
  162.     selectName = "ss_"+ selectObject.name;
  163.     simuSelObject = document.getElementById('_'+ selectName);
  164.     tableNode = document.getElementById('opt_'+ selectName);
  165.     
  166.     // See if the original select was un-hidden
  167.     var curVisibility = (selectObject.style.visibility) ? selectObject.style.visibility : "visible";
  168.     if (selectObject.origVisibility != "hidden" || curVisibility != "hidden")
  169.     {
  170.         selectObject.style.visibility = "hidden";
  171.         if (document.getElementById('__'+ selectName))
  172.             document.getElementById('__'+ selectName).style.visibility = "visible";
  173.     }
  174.  
  175.     // Rewrite the DHTML dynamically with the most current options
  176.     simuSelObject.options = new Array();
  177.  
  178.     simuSelObject.lastHighlighted = -1;
  179.  
  180.     var newTBody = document.createElement('tbody');
  181.     var oldTBody = tableNode.childNodes[0];
  182.     var oTR, oTD, oTDspan;
  183.  
  184.     for(i=0; i < selectObject.options.length; i++)
  185.     {
  186.         simuSelObject.options[i] = new Option();
  187.         simuSelObject.options[i].value = selectObject.options[i].value;
  188.         simuSelObject.options[i].text = selectObject.options[i].text;
  189.  
  190.         oTR = document.createElement('tr');
  191.         newTBody.appendChild(oTR);
  192.         oTD = document.createElement('td');
  193.         oTD.id = "o"+ i +"_"+ selectName;
  194.         oTD.style.whiteSpace = "noWrap";
  195.         oTD.className = "simuSelNormal";
  196.         oTD.onmouseover    = new Function("ssHighlightOption('"+ selectName +"',"+ i +")");
  197.         oTD.onmouseup    = new Function("setSelect('"+ selectName +"',"+ i +")");
  198.         oTD.onmousedown    = oTD.onmouseup;
  199.         oTD.appendChild(document.createTextNode(simuSelObject.options[i].text));
  200.         oTDspan = document.createElement('span');
  201.         oTDspan.style.width = "21px";
  202.         oTDspan.style.paddingLeft = "21px";
  203.         oTDspan.innerHTML = " "
  204.         oTD.appendChild(oTDspan);
  205.         oTR.appendChild(oTD);
  206.     }
  207.  
  208.     tableNode.replaceChild(newTBody, oldTBody);
  209.  
  210.     oTD=null;
  211.     oTR=null;
  212.     oTDspan=null;
  213.     newTBody=null;
  214.  
  215.     setTimeout("ssResize('"+ selectName +"')", 20);
  216.  
  217.     var currSelIdx = (selectObject.selectedIndex > -1) ? selectObject.selectedIndex : 0;
  218.     setSelect(selectName, currSelIdx, true);
  219. }
  220.  
  221. // Highlight the option on Mouse Over
  222. function ssHighlightOption(ssID, idx)
  223. {
  224.     var ss = document.getElementById('_'+ssID);
  225.     var so = document.getElementById('o'+ idx +'_'+ ssID);
  226.  
  227.     // Un-Highlight the last item, otherwise un-highlight all
  228.     if (ss.lastHighlighted > -1)
  229.         document.getElementById('o'+ ss.lastHighlighted +'_'+ ssID).className = "simuSelNormal";
  230.     else
  231.         for(var i=0; i < ss.options.length; i++)
  232.             document.getElementById('o'+ i +'_'+ ssID).className = "simuSelNormal";
  233.  
  234.     so.className = "simuSelSelected";
  235.     ss.lastHighlighted = idx;
  236. }
  237.  
  238. function openSS(ssID)
  239. {
  240.     var ss = document.getElementById(ssID)
  241.     if (ss)
  242.     {
  243.         if (lastOpenSS)
  244.         {
  245.             closeSS(lastOpenSS);
  246.             return;
  247.         }
  248.  
  249.         if(!ss.posDone)
  250.         {
  251.             var simuContainer = document.getElementById('__'+ ssID);
  252.             ss.style.left = simuContainer.offsetLeft + 1;
  253.             ss.style.top = simuContainer.offsetTop + simuContainer.offsetHeight;
  254.             ss.posDone = true;
  255.         }
  256.         ss.style.zIndex = 100;
  257.         ss.style.visibility = 'visible';
  258.         if (ssIsIE)
  259.             ss.focus();
  260.         else
  261.             document.getElementById('_'+ ssID).focus();
  262.  
  263.         // Highlight the selected item
  264.         var ss = document.getElementById('_'+ssID);
  265.         if (ss.selectedIndex > -1 && ss.options[ss.selectedIndex].text == ss.value)
  266.             ssHighlightOption(ssID, ss.selectedIndex)
  267.     }
  268.     lastOpenSS = ssID;
  269. }
  270.  
  271. function closeSS(ssID)
  272. {
  273.     var menuObj;
  274.     if (ssID)
  275.         menuObj = document.getElementById(ssID);
  276.     else if (lastOpenSS)
  277.     {
  278.         ssID = lastOpenSS
  279.         menuObj = document.getElementById(ssID);
  280.     }
  281.  
  282.     if (menuObj)
  283.     {
  284.         menuObj.style.visibility = 'hidden';
  285.         menuObj.style.zIndex = 0;
  286.         lastOpenSS = '';
  287.         document.getElementById('_'+ssID).lastHighlighted = -1;
  288.     }
  289.     setTimeout("document.getElementById('_"+ ssID +"').select()",10);
  290. }
  291.  
  292. function setSelect(ssID, newIndex, isOnSync, leaveOpen)
  293. {
  294.     if (!leaveOpen) closeSS(ssID);
  295.     var ss = document.getElementById('_'+ssID);
  296.     var so = document.getElementById('o_'+ssID);
  297.     var isChanged = (ss.origSelect.selectedIndex != newIndex);
  298.  
  299.     ss.origSelect.selectedIndex = newIndex;
  300.     ss.selectedIndex = newIndex;
  301.     ss.value = (ss.options[newIndex]) ? ss.options[newIndex].text : "";
  302.  
  303.     // If the original select had an onchange event, process it
  304.     if (!isOnSync && isChanged && ss.origSelect.onchange)
  305.         execChangeEvt(ss.origSelect);
  306.  
  307.     if (!isOnSync && (!leaveOpen || !lastOpenSS)) setTimeout("document.getElementById('_"+ ssID +"').select()",10);
  308. }
  309.  
  310. // Sends an onchange event to an object
  311. function execChangeEvt(selObj)
  312. {
  313.     if (selObj.fireEvent)
  314.         selObj.fireEvent("onchange");
  315.         else if (document.createEvent)
  316.         {
  317.         var ev = document.createEvent('Events');
  318.         ev.initEvent("change", false, false);
  319.         selObj.dispatchEvent(ev);
  320.     }
  321. }
  322.  
  323. // Go through the Forms of the current page and REPLACE all <SELECT> controls with SimuSelect controls.
  324. function SimuSelectAll()
  325. {
  326.     var i,j, ele;
  327.     for(i=0; i < document.forms.length; i++)
  328.     {
  329.         for(j=0; j < document.forms[i].length; j++)
  330.         {
  331.             ele = document.forms[i].elements[j];
  332.             if(ele.type.indexOf("select") >= 0 )
  333.             {
  334.                 SimuSelect(ele, true);
  335.             }
  336.         }
  337.     }
  338. }
  339.  
  340. // Support keyboard shortcuts for the SimuSelect contols
  341. function ssCheckKB(ev)
  342. {
  343.     if (!ev) ev = window.event;
  344.     if (ev)
  345.     {
  346.         var sourceObj = (ev.srcElement) ? ev.srcElement : ev.target;
  347.         if (!sourceObj) return true;
  348.         var ssID = sourceObj.id.replace(/^_/,"");
  349.         var ss = document.getElementById('_'+ssID);
  350.         var kc    = ev.keyCode;
  351.         var key = String.fromCharCode(kc);
  352.         var newIndex = (ss.lastHighlighted > -1) ? ss.lastHighlighted : ss.selectedIndex;
  353.  
  354.         if (kc == 27)                         // Escape
  355.             closeSS(lastOpenSS);
  356.         else if (kc == 38)                     // Up
  357.         {
  358.             if ((newIndex-1) >= 0)
  359.                 newIndex--;
  360.  
  361.             if (lastOpenSS)
  362.                 ssHighlightOption(ssID, newIndex);
  363.  
  364.             setSelect(ssID, newIndex, false, true);
  365.         }
  366.         else if (kc == 40)                     // Down
  367.         {
  368.             if ((newIndex+1) < ss.options.length)
  369.                 newIndex++;
  370.  
  371.             if (lastOpenSS)
  372.                 ssHighlightOption(ssID, newIndex);
  373.  
  374.             setSelect(ssID, newIndex, false, true);
  375.         }
  376.         else if (kc == 36 || kc == 33)         // Home / PgUp
  377.         {
  378.             newIndex = 0;
  379.  
  380.             if (lastOpenSS)
  381.                 ssHighlightOption(ssID, newIndex);
  382.  
  383.             setSelect(ssID, newIndex, false, true);    
  384.         }
  385.         else if (kc == 35 || kc == 34)         // End / PgDn
  386.         {
  387.             newIndex = ss.options.length - 1;
  388.  
  389.             if (lastOpenSS)
  390.                 ssHighlightOption(ssID, newIndex);
  391.  
  392.             setSelect(ssID, newIndex, false, true);    
  393.         }
  394.         else if (key.search(/^[A-Za-z0-9]$/) == 0) // Letter / Number
  395.         {
  396.             if (ss.isCombo)
  397.                 return true;
  398.  
  399.             // Find the next option that starts with this letter/number
  400.             var i = newIndex + 1;
  401.             do
  402.             {
  403.                 if (i >= ss.options.length)
  404.                     if (newIndex == 0)
  405.                         break;
  406.                     else
  407.                         i = 0;
  408.  
  409.                 if (ss.options[i].text && key.toLowerCase() == ss.options[i].text.charAt(0).toLowerCase())
  410.                 {
  411.                     if (lastOpenSS)
  412.                         ssHighlightOption(ssID, i);
  413.         
  414.                     setSelect(ssID, i, false, true);    
  415.                     break;
  416.                 }
  417.                 i++;
  418.             }
  419.             while(i != newIndex);
  420.         }
  421.     }
  422.     return true;
  423. }
  424. // END SimuSelect
  425.  
  426.  
  427. /*
  428. ** DHTML File Menus
  429. ** 
  430. ** Based on sources at http://dhtmlmenus.editthispage.com/  by Jake Savin
  431. */
  432.  
  433. var menuEventList = new Array(1);
  434. menuEventList[0] = 0;
  435.  
  436. var uniqueEventIdentifier = 1;
  437.  
  438. function menuEvent (secs, exeStatement)
  439. {
  440.     cancelMenuEvent ();
  441.  
  442.     this.time = secs;
  443.     this.exeStatement = exeStatement;
  444.     this.identifier = uniqueEventIdentifier++;
  445.  
  446.     menuEventList[0] = this;
  447.  
  448.     window.setTimeout ( "executemenuEvent(" + menuEventList[0].identifier + ");", secs*1000 );
  449. }
  450. function executemenuEvent (eventIdentifier)
  451. {
  452.     if ( typeof ( menuEventList[0] ) == "object" )
  453.         if ( typeof ( menuEventList[0].exeStatement ) == "string" )
  454.             if ( menuEventList[0].identifier == eventIdentifier )
  455.             {
  456.                 eval ( menuEventList[0].exeStatement );
  457.                 menuEventList[0] = void 0;
  458.             }
  459. }
  460. function cancelMenuEvent ()
  461. {
  462.     menuEventList[0] = void 0;
  463. }
  464.  
  465. function menuBarMouseOut ()
  466. {
  467. }
  468.  
  469. function menuBarBlur ()
  470. {
  471.     if (document.currentMenu)
  472.         document.currentMenu.style.display='none';
  473.     if (document.currentMBarOpt)
  474.         document.currentMBarOpt.style.border='1px solid #eCeCe2';
  475.     document.menuIsActive = false;
  476.     window.menuHasFocus = false;
  477. }
  478.  
  479. function menuBarOptionMouseOver (menuBarOptionId, menuId) {
  480.     if (document.menuIsActive) {
  481.         if (document.currentMenu)
  482.             document.currentMenu.style.display = 'none';
  483.         document.currentMBarOpt.style.border='1px solid #eCeCe2';
  484.         document.currentMBarOpt.style.backgroundColor='#eCeCe2';
  485.         document.currentMBarOpt.style.color='black';
  486.         }
  487.         if (document.menuIsActive) {
  488.             menuBarOptionId.style.border='1px buttonface inset';
  489.             menuId.style.display = 'block';
  490.             }
  491.         else {
  492.             if (typeof (document.currentMBarOpt) == 'object') {
  493.                 document.currentMBarOpt.style.border='1px solid #eCeCe2';
  494.                 }
  495.             menuBarOptionId.style.border='1px buttonface outset';
  496.         }
  497.     menuBarOptionId.style.cursor='default';
  498.     if (document.currentMenu)
  499.         document.currentMenu=menuId;
  500.     document.currentMBarOpt=menuBarOptionId;
  501.     window.menuHasFocus = true;
  502.     }
  503. function menuBarOptionMouseOut (menuBarOptionId)
  504. {
  505.     menuBarOptionId.style.border='1px solid #eCeCe2';
  506.     window.menuHasFocus = false;
  507. }
  508.  
  509. function menuBarOptionMouseDown (menuBarOptionId, menuId) {
  510.     menubar.focus ();
  511.     menuBarOptionId.style.border='1px buttonface inset';
  512.     menuId.style.display = 'block';
  513.     document.menuIsActive=true;
  514. }
  515.  
  516. function menuClick ()
  517. {
  518. }
  519.  
  520. function menuOptionCellMouseOver (cell)
  521. {
  522.     cell.style.cursor='default';
  523.     cell.style.color='white';
  524.     cell.style.backgroundColor='#0066BB';
  525. }
  526.  
  527. function menuOptionCellMouseOut (cell)
  528. {
  529.     cell.style.backgroundColor='#eCeCe2';
  530.     cell.style.color='black';
  531. }
  532.  
  533. function menuOptionDivMouseDown (url)
  534. {
  535.     if (document.currentMenu)
  536.         document.currentMenu.style.display='none';
  537.     document.currentMBarOpt.style.border='1px solid #eCeCe2';
  538.     document.menuIsActive = false;
  539.     window.menuHasFocus = false;
  540.     if (url.search(/javascript:/) == 0)
  541.         eval(url.substr(11));
  542.     else
  543.         window.location=url;
  544. }
  545.  
  546. function menuOptionDivClick (url)
  547. {
  548. }
  549.  
  550. // Support keyboard shortcuts for the file menu
  551. function checkShorts()
  552. {
  553.     var ev = window.event;
  554.     if (ev)
  555.     {
  556.         var key = String.fromCharCode(ev.keyCode);
  557.         if (ev.keyCode == 18) // ALT
  558.         {
  559.             if (document.menuIsActive || menuHasFocus)
  560.             {
  561.                 //menuBarBlur();
  562.                 lastAlt = false;
  563.                 ev.returnValue = false;
  564.             }
  565.             else
  566.             {
  567.                 //document.currentMenu=fileMenu;
  568.                 //menuBarOptionMouseOver(fileMenuMBarOpt, fileMenu);
  569.                 lastAlt = true;
  570.                 ev.returnValue = false;
  571.             }
  572.         }
  573.         else if (ev.keyCode == 27) // Escape
  574.             menuBarBlur();
  575.         else if (ev.altKey || lastAlt)
  576.         {
  577.             if (key == 'F')
  578.             {
  579.                 //menuBarBlur();
  580.                 //document.currentMenu=fileMenu;
  581.                 //document.currentMBarOpt=fileMenuMBarOpt;
  582.                 //menuBarOptionMouseDown (fileMenuMBarOpt, fileMenu);
  583.                 lastAlt = false;
  584.             }
  585.             else if (key == 'H')
  586.             {
  587.                 //menuBarBlur();
  588.                 //document.currentMenu=helpMenu;
  589.                 //document.currentMBarOpt=helpMenuMBarOpt;
  590.                 //menuBarOptionMouseDown (helpMenuMBarOpt, helpMenu);
  591.                 lastAlt = false;
  592.             }
  593.             else if (key == 'S')
  594.             {
  595.                 //menuBarBlur();
  596.                 //document.currentMenu=settingsMenu;
  597.                 //document.currentMBarOpt=settingsMenuMBarOpt;
  598.                 //menuBarOptionMouseDown (settingsMenuMBarOpt, settingsMenu);
  599.                 lastAlt = false;
  600.             }
  601.         }
  602.         else if (key == 'O' && document.currentMenu == fileMenu)
  603.         {
  604.             if (document.menuIsActive)
  605.                 menuOptionDivMouseDown('javascript:popFileOpen()');
  606.         }
  607.         else if (key == 'X' && document.currentMenu == fileMenu)
  608.         {
  609.             if (document.menuIsActive)
  610.                 menuOptionDivMouseDown('javascript:window.close()');
  611.         }
  612.         else if (key == 'S' && document.currentMenu == settingsMenu)
  613.         {
  614.             if (document.menuIsActive)
  615.                 menuOptionDivMouseDown('javascript:window.saveConfig()');
  616.         }
  617.         else if (key == 'A' && document.currentMenu == helpMenu)
  618.         {
  619.             if (document.menuIsActive)
  620.                 menuOptionDivMouseDown('javascript:about()');
  621.         }
  622.     }
  623. }
  624.  
  625. /*
  626. **    Video Player
  627. */
  628.     var isPlayerDone    = false;
  629.     var isPlayerPaused    = false;
  630.     var isPlayerMuted    = false;
  631.     var isPlayerStopped    = true;
  632.     var whichPlayerInitializing = null;
  633.  
  634.     function outpPlayPause()
  635.     {
  636.         playPause(document.Player2);
  637.     }
  638.  
  639.     function inpPlayPause()
  640.     {
  641.         playPause(document.Player1);
  642.     }
  643.  
  644.     function playPause(pObj)
  645.     {
  646.         if (isPlayerStopped)
  647.             pObj.URL= (ff.vFile.value) ? ff.vFile.value : "";
  648.         else if (isPlayerPaused)
  649.             pObj.controls.play();
  650.         else
  651.             pObj.controls.pause();
  652.     }
  653.  
  654.     function playerLoad(pObj, url)
  655.     {
  656.         if (!pObj) return;
  657.  
  658.         pObj.URL = url;
  659.         whichPlayerInitializing = pObj;
  660.         //pObj.controls.stop();
  661.     }
  662.  
  663.     function toggleActive(pObj)
  664.     {
  665.         if (pObj)
  666.         {
  667.             if (pObj.enabled)
  668.             {
  669.                 pObj.enabled=false;
  670.                 pObj.uiMode="invisible";
  671.             }
  672.             else
  673.             {
  674.                 pObj.enabled=true;
  675.                 pObj.uiMode="full";
  676.                 if (ff.vFile.value)
  677.                     playerLoad(pObj, ff.vFile.value);
  678.             }
  679.         }
  680.     }
  681.  
  682.     function inpStop()
  683.     {
  684.         document.Player1.controls.stop();
  685.     }
  686.  
  687.     function inpFullScreen()
  688.     {
  689.         document.Player1.fullScreen = true;
  690.     }
  691.  
  692.     function inpMute()
  693.     {
  694.         if (!isPlayerStopped)
  695.         {
  696.             isPlayerMuted = !isPlayerMuted;
  697.             document.Player.settings.mute = isPlayerMuted;
  698.         }
  699.     }
  700.  
  701. // END VIDEO PLAYER
  702.